class User{
  // 类型属性需要先定义一下类型
  name:string;
  age:number
  constructor(a:string,b:number){
    this.name = a
    this.age = b
  }

  show():string{
    return `${this.name}的年龄是${this.age}`
  }
}

let jimmy = new User('jimmy',22)
let xuexue = new User('xuexue',22)
// 会有非常好的代码提示
jimmy.show()

/**
 * 这是TS特别好的地方 定义了一个 User实例的数组 
 *  只有 User的实例才能加入进去 别的都不能成功的加入
 */
let couple:User[] = [jimmy,xuexue]

// couple.push('111') 报错的 因为 111 不是User的实例 所以会直接报错

/**
 * 使用 TS 约束类之后 让类更加的严格 更不容易发生意想不到的错误
 */